package com.supply.dl.bean;


import java.math.BigDecimal;
import java.util.List;

/**
 * 领料收货详情(包括，未作业，和已作业)
 * <p>
 * Author: tian <br>
 * Time: 2018/7/23 10:36
 */
public class ReceiveJobDetail extends BaseBean {

    /**
     * 通知单ID
     */
    private String noticeOrderId;
    /**
     * 通知单号
     */
    private String noticeOrderNo;

    /**
     * 通知单明细id
     */
    private String tfNoticeOrderDetailId;

    /**
     * 订单ID
     */
    private String tfOrderId;

    /**
     * 订单号
     */
    private String tfOrderNo;

    /**
     * 订单明细id
     */
    private String tfOrderDetailId;

    /**
     * 订单状态
     */
    private String orderStatus;

    /**
     * 订单状态名称
     */
    private String orderStatusName;

    /**
     * 建单人ID
     */
    private String addUserId;
    /**
     * 建单人名男子
     */
    private String addUserName;
    /**
     * 建单时间
     */
    private String addTime;

    /**
     * 入库车间ID
     */
    private String inWorkshopId;

    /**
     * 入库车间名称
     */
    private String inWorkshopName;

    /**
     * 通知单发货数量（件）
     */
    private BigDecimal sendTotalAmount;

    /**
     * 通知单发货数量（吨）
     */
    private BigDecimal sendTotalWeight;

    /**
     * 通知单发货数量（方）
     */
    private BigDecimal sendTotalVolume;

    /**
     * 通知单明细
     */
    private List<NoticeOrderDetailInfo> stoTfNoticeOrderAppRcvDetailDtos;

    /**
     * 附件列表
     */
    private List<Fujian> attachList;

    /**
     * 通知单明细
     * <p>
     * Author: tian <br>
     * Time: 2018/7/23 10:44
     */
    public static class NoticeOrderDetailInfo extends BaseBean {

        /**
         * 物料id
         */
        private String skuId;

        /**
         * 物料编码
         */
        private String skuCode;

        /**
         * 物料名称
         */
        private String skuName;

        /**
         * 作业类型 （0：已作业，1：未作业）
         */
        private int tfJobType;


        /**
         * 通知单明细实发数量（件）
         */
        private BigDecimal sendTotalAmountD;

        /**
         * 通知单明细实发数量（吨）
         */
        private BigDecimal sendTotalWeightD;

        /**
         * 通知单明细实发数量（方）
         */
        private BigDecimal sendTotalVolumeD;

        /**
         * 通知单明细实收总数量（件）
         */
        private BigDecimal revTotalAmountD;

        /**
         * 通知单明细实收总数量（吨）
         */
        private BigDecimal revTotalWeightD;

        /**
         * 通知单明细实收总数量（方）
         */
        private BigDecimal revTotalVolumeD;

        /**
         * 入库通知单作业实体列表
         */
        private List<RukuNoticeOrderDoneInfo> stoTfNoticeOrderAppRcvJobDtos;

        /**
         * 是否被选中
         */
        private boolean isSelect;

        public int getTfJobType() {
            return tfJobType;
        }

        public void setTfJobType(int tfJobType) {
            this.tfJobType = tfJobType;
        }

        public boolean isSelect() {
            return isSelect;
        }

        public void setSelect(boolean select) {
            isSelect = select;
        }

        public String getSkuId() {
            return skuId;
        }

        public void setSkuId(String skuId) {
            this.skuId = skuId;
        }

        public String getSkuCode() {
            return skuCode;
        }

        public void setSkuCode(String skuCode) {
            this.skuCode = skuCode;
        }

        public String getSkuName() {
            return skuName;
        }

        public void setSkuName(String skuName) {
            this.skuName = skuName;
        }

        public BigDecimal getSendTotalAmountD() {
            return sendTotalAmountD;
        }

        public void setSendTotalAmountD(BigDecimal sendTotalAmountD) {
            this.sendTotalAmountD = sendTotalAmountD;
        }

        public BigDecimal getSendTotalWeightD() {
            return sendTotalWeightD;
        }

        public void setSendTotalWeightD(BigDecimal sendTotalWeightD) {
            this.sendTotalWeightD = sendTotalWeightD;
        }

        public BigDecimal getSendTotalVolumeD() {
            return sendTotalVolumeD;
        }

        public void setSendTotalVolumeD(BigDecimal sendTotalVolumeD) {
            this.sendTotalVolumeD = sendTotalVolumeD;
        }

        public BigDecimal getRevTotalAmountD() {
            return revTotalAmountD;
        }

        public void setRevTotalAmountD(BigDecimal revTotalAmountD) {
            this.revTotalAmountD = revTotalAmountD;
        }

        public BigDecimal getRevTotalWeightD() {
            return revTotalWeightD;
        }

        public void setRevTotalWeightD(BigDecimal revTotalWeightD) {
            this.revTotalWeightD = revTotalWeightD;
        }

        public BigDecimal getRevTotalVolumeD() {
            return revTotalVolumeD;
        }

        public void setRevTotalVolumeD(BigDecimal revTotalVolumeD) {
            this.revTotalVolumeD = revTotalVolumeD;
        }

        public java.util.List<RukuNoticeOrderDoneInfo> getStoTfNoticeOrderAppRcvJobDtos() {
            return stoTfNoticeOrderAppRcvJobDtos;
        }

        public void setStoTfNoticeOrderAppRcvJobDtos(java.util.List<RukuNoticeOrderDoneInfo> stoTfNoticeOrderAppRcvJobDtos) {
            this.stoTfNoticeOrderAppRcvJobDtos = stoTfNoticeOrderAppRcvJobDtos;
        }
    }

    /**
     * 入库通知单作业实体
     * <p>
     * Author: tian <br>
     * Time: 2018/7/23 10:48
     */
    public static class RukuNoticeOrderDoneInfo extends BaseBean {

        /**
         * 关联作业id
         */
        private String relatedJobId;

        /**
         * 库存类型
         */
        private String stockType;
        /**
         * 库存类型名称
         */
        private String stockTypeName;
        /**
         * 库存状态
         */
        private String stockStatus;

        /**
         * 库存状态名称
         */
        private String stockStatusName;
        /**
         * 规格id
         */
        private String unitId;
        /**
         * 规格名称
         */
        private String unitName;
        /**
         * 已作业实收数量（件）
         */
        private BigDecimal tfInAmout;
        /**
         * 已作业实收数量（吨）
         */
        private BigDecimal tfInWeight;
        /**
         * 已作业实收数量（方）
         */
        private BigDecimal tfInVolume;

        /**
         * 未作业实收数量（件）
         */
        private BigDecimal tfOutAmout;

        /**
         * 未作业实收数量（吨）
         */
        private BigDecimal tfOutWeight;

        /**
         * 未作业实收数量（方）
         */
        private BigDecimal tfOutVolume;

        /**
         * 生产班次
         */
        private String productTeam;

        /**
         * 包重
         */
        private String packageWeight;
        /**
         * 批次号
         */
        private String batchNo;

        /**
         * 库位id
         */
        private String tfInStockId;

        /**
         * 库位名字
         */
        private String tfInStockName;

        /**
         * 仓库名字
         */
        private String tfInWhName;

        /**
         * 仓库id
         */
        private String tfInWhId;

        /**
         * 备注
         */
        private String remark;

        /**
         * 破件数
         */
        private String brokenInAmount;

        /**
         * 是否被选中
         */
        private boolean isSelect;

        /**
         * 当做id使用
         */
        private String createTime;

        public RukuNoticeOrderDoneInfo() {
            createTime = System.currentTimeMillis() + "-" + (int) (Math.random() * 10000) + (int) (Math.random() * 100);
        }

        public String getCreateTime() {
            return createTime;
        }

        public void setCreateTime(String createTime) {
            this.createTime = createTime;
        }

        public String getTfInWhName() {
            return tfInWhName;
        }

        public void setTfInWhName(String tfInWhName) {
            this.tfInWhName = tfInWhName;
        }

        public String getTfInStockName() {
            return tfInStockName;
        }

        public void setTfInStockName(String tfInStockName) {
            this.tfInStockName = tfInStockName;
        }

        public BigDecimal getTfOutAmout() {
            return tfOutAmout;
        }

        public void setTfOutAmout(BigDecimal tfOutAmout) {
            this.tfOutAmout = tfOutAmout;
        }

        public BigDecimal getTfOutWeight() {
            return tfOutWeight;
        }

        public void setTfOutWeight(BigDecimal tfOutWeight) {
            this.tfOutWeight = tfOutWeight;
        }

        public BigDecimal getTfOutVolume() {
            return tfOutVolume;
        }

        public void setTfOutVolume(BigDecimal tfOutVolume) {
            this.tfOutVolume = tfOutVolume;
        }

        public boolean isSelect() {
            return isSelect;
        }

        public void setSelect(boolean select) {
            isSelect = select;
        }

        public String getRelatedJobId() {
            return relatedJobId;
        }

        public void setRelatedJobId(String relatedJobId) {
            this.relatedJobId = relatedJobId;
        }

        public String getStockType() {
            return stockType;
        }

        public void setStockType(String stockType) {
            this.stockType = stockType;
        }

        public String getStockTypeName() {
            return stockTypeName;
        }

        public void setStockTypeName(String stockTypeName) {
            this.stockTypeName = stockTypeName;
        }

        public String getStockStatus() {
            return stockStatus;
        }

        public void setStockStatus(String stockStatus) {
            this.stockStatus = stockStatus;
        }

        public String getStockStatusName() {
            return stockStatusName;
        }

        public void setStockStatusName(String stockStatusName) {
            this.stockStatusName = stockStatusName;
        }

        public String getUnitId() {
            return unitId;
        }

        public void setUnitId(String unitId) {
            this.unitId = unitId;
        }

        public String getUnitName() {
            return unitName;
        }

        public void setUnitName(String unitName) {
            this.unitName = unitName;
        }

        public BigDecimal getTfInAmout() {
            return tfInAmout;
        }

        public void setTfInAmout(BigDecimal tfInAmout) {
            this.tfInAmout = tfInAmout;
        }

        public BigDecimal getTfInWeight() {
            return tfInWeight;
        }

        public void setTfInWeight(BigDecimal tfInWeight) {
            this.tfInWeight = tfInWeight;
        }

        public BigDecimal getTfInVolume() {
            return tfInVolume;
        }

        public void setTfInVolume(BigDecimal tfInVolume) {
            this.tfInVolume = tfInVolume;
        }

        public String getProductTeam() {
            return productTeam;
        }

        public void setProductTeam(String productTeam) {
            this.productTeam = productTeam;
        }

        public String getPackageWeight() {
            return packageWeight;
        }

        public void setPackageWeight(String packageWeight) {
            this.packageWeight = packageWeight;
        }

        public String getBatchNo() {
            return batchNo;
        }

        public void setBatchNo(String batchNo) {
            this.batchNo = batchNo;
        }

        public String getTfInStockId() {
            return tfInStockId;
        }

        public void setTfInStockId(String tfInStockId) {
            this.tfInStockId = tfInStockId;
        }

        public String getTfInWhId() {
            return tfInWhId;
        }

        public void setTfInWhId(String tfInWhId) {
            this.tfInWhId = tfInWhId;
        }

        public String getRemark() {
            return remark;
        }

        public void setRemark(String remark) {
            this.remark = remark;
        }

        public String getBrokenInAmount() {
            return brokenInAmount;
        }

        public void setBrokenInAmount(String brokenInAmount) {
            this.brokenInAmount = brokenInAmount;
        }
    }

    /**
     * 附件
     * <p>
     * Author: tian <br>
     * Time: 2018/7/23 10:59
     */
    public class Fujian extends BaseBean {

        /**
         * 订单ID
         */
        private String orderId;
        /**
         * 订单号
         */
        private String orderNo;

        /**
         * 通知ID
         */
        private String noticeOrderId;

        /**
         * 通知号
         */
        private String noticeOrderNo;

        /**
         * 附件信息
         */
        private List<FujianInfo> jobAttachInfoList;

        public String getOrderId() {
            return orderId;
        }

        public void setOrderId(String orderId) {
            this.orderId = orderId;
        }

        public String getOrderNo() {
            return orderNo;
        }

        public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }

        public String getNoticeOrderId() {
            return noticeOrderId;
        }

        public void setNoticeOrderId(String noticeOrderId) {
            this.noticeOrderId = noticeOrderId;
        }

        public String getNoticeOrderNo() {
            return noticeOrderNo;
        }

        public void setNoticeOrderNo(String noticeOrderNo) {
            this.noticeOrderNo = noticeOrderNo;
        }

        public java.util.List<FujianInfo> getJobAttachInfoList() {
            return jobAttachInfoList;
        }

        public void setJobAttachInfoList(java.util.List<FujianInfo> jobAttachInfoList) {
            this.jobAttachInfoList = jobAttachInfoList;
        }
    }


    /**
     * 附件信息
     * <p>
     * Author: tian <br>
     * Time: 2018/7/23 11:02
     */
    public class FujianInfo extends BaseBean {
        /**
         * 附件ID
         */
        private String id;

        /**
         * 作业id
         */
        private String jobId;

        /**
         * 附件图片地址
         */
        private String attachUrl;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getJobId() {
            return jobId;
        }

        public void setJobId(String jobId) {
            this.jobId = jobId;
        }

        public String getAttachUrl() {
            return attachUrl;
        }

        public void setAttachUrl(String attachUrl) {
            this.attachUrl = attachUrl;
        }
    }


    public String getNoticeOrderId() {
        return noticeOrderId;
    }

    public void setNoticeOrderId(String noticeOrderId) {
        this.noticeOrderId = noticeOrderId;
    }

    public String getNoticeOrderNo() {
        return noticeOrderNo;
    }

    public void setNoticeOrderNo(String noticeOrderNo) {
        this.noticeOrderNo = noticeOrderNo;
    }

    public String getTfNoticeOrderDetailId() {
        return tfNoticeOrderDetailId;
    }

    public void setTfNoticeOrderDetailId(String tfNoticeOrderDetailId) {
        this.tfNoticeOrderDetailId = tfNoticeOrderDetailId;
    }

    public String getTfOrderId() {
        return tfOrderId;
    }

    public void setTfOrderId(String tfOrderId) {
        this.tfOrderId = tfOrderId;
    }

    public String getTfOrderNo() {
        return tfOrderNo;
    }

    public void setTfOrderNo(String tfOrderNo) {
        this.tfOrderNo = tfOrderNo;
    }

    public String getTfOrderDetailId() {
        return tfOrderDetailId;
    }

    public void setTfOrderDetailId(String tfOrderDetailId) {
        this.tfOrderDetailId = tfOrderDetailId;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatusName() {
        return orderStatusName;
    }

    public void setOrderStatusName(String orderStatusName) {
        this.orderStatusName = orderStatusName;
    }

    public String getAddUserId() {
        return addUserId;
    }

    public void setAddUserId(String addUserId) {
        this.addUserId = addUserId;
    }

    public String getAddUserName() {
        return addUserName;
    }

    public void setAddUserName(String addUserName) {
        this.addUserName = addUserName;
    }

    public String getAddTime() {
        return addTime;
    }

    public void setAddTime(String addTime) {
        this.addTime = addTime;
    }

    public String getInWorkshopId() {
        return inWorkshopId;
    }

    public void setInWorkshopId(String inWorkshopId) {
        this.inWorkshopId = inWorkshopId;
    }

    public String getInWorkshopName() {
        return inWorkshopName;
    }

    public void setInWorkshopName(String inWorkshopName) {
        this.inWorkshopName = inWorkshopName;
    }

    public BigDecimal getSendTotalAmount() {
        return sendTotalAmount;
    }

    public void setSendTotalAmount(BigDecimal sendTotalAmount) {
        this.sendTotalAmount = sendTotalAmount;
    }

    public BigDecimal getSendTotalWeight() {
        return sendTotalWeight;
    }

    public void setSendTotalWeight(BigDecimal sendTotalWeight) {
        this.sendTotalWeight = sendTotalWeight;
    }

    public BigDecimal getSendTotalVolume() {
        return sendTotalVolume;
    }

    public void setSendTotalVolume(BigDecimal sendTotalVolume) {
        this.sendTotalVolume = sendTotalVolume;
    }

    public List<NoticeOrderDetailInfo> getStoTfNoticeOrderAppRcvDetailDtos() {
        return stoTfNoticeOrderAppRcvDetailDtos;
    }

    public void setStoTfNoticeOrderAppRcvDetailDtos(List<NoticeOrderDetailInfo> stoTfNoticeOrderAppRcvDetailDtos) {
        this.stoTfNoticeOrderAppRcvDetailDtos = stoTfNoticeOrderAppRcvDetailDtos;
    }

    public List<Fujian> getAttachList() {
        return attachList;
    }

    public void setAttachList(List<Fujian> attachList) {
        this.attachList = attachList;
    }
}
